不知不覺已經過了三分之一了,來到第 11 天就開始有些焦慮,「天啊,我的side project還沒有開始想內容呢」,先給大家一個預防針,不要太期待後面的專案實作 (可能邊做邊發現錯)
話不多說,還記得昨天的圖嗎?不記得也沒關係,我再放一次
昨天把 routers 比喻為工讀生,而今天要說的是 routers 指引路徑之後,後面給誰接手做事呢?主角就是 MVC 三大角色,分別為 Model、View、Controller,麻煩大家再上下對照兩張圖 (應該比較容易懂...吧)
如果再以昨天故事來解釋,行政大樓就會對應 Controller,裡面的校友中心、學務處就會是action、接著人員會藉由電腦來調取資料,拿到資料後輸出一份課程列表的文件或學生證到我的手上。
用上圖來解析一下每個步驟:step1
用戶發送一個請求,希望取得某項資源step2
routers 接到你的請求,找你需要的 controllerstep3
判斷找哪個 action 做事情step4
action 為了取得相關資料,跟 model 要資料step5
model 幫忙將人類語言翻譯給資料庫看得懂的語言step6
資料庫找到資料後交回給 modelstep7
model 把這包資料傳給 controllerstep8
controller 需要把一堆文字進行美化後才可以給使用者,於是交代 view 去包裝step9
view 包裝完後就把文件給 controller 處理後續
今天講的是大架構,後面幾天會來說說 model、view、controller 如何相互配合囉~
參考資料:
為你自己學Ruby on Rails
MVC 與 rails
學無止盡,每天都要進步一點點!
之前自學時,從其它書本的內容試著理解MVC,仍是一知半解!!
看完你的「文章與圖解」,真的有認識MVC了!!
謝謝你的回饋,很高興你可以看懂 : )
我還只是個新手,如果想更深入了解,文章後面有龍哥的書連結,寫的也很容易理解喔!